In 2020, I got my first contact with Java in a too long time, and consequently had my first contact with its most popular framework, Spring. Discovering Spring obviously prompted me to discover its documentation, as well as quite a few flaws.
After reporting a behavioral bug, I reported some of the flaws in its documentation1
. I then reported some of the issues in its ITS, based on Atlassian Jira, which I had stumbled on.
But rather than trying to fix these, the Spring project took the puzzling decision of migrating most of its issue tracking to... GitHub! Although in reality Spring now has all of its Jira instance's issues plus countless more from GitHub, for Trevor Marshall (a VMware employee), that was apparently a good enough reason to pretend the 4 ITS issues I reported2
were "resolved". Even though none has actually been resolved at all, even to this day (Summer 2022).
This rather questionable treatment should have prompted a discussion about Marshall and Spring's plans, except... I couldn't find where to discuss Spring development!3 That report changed so little that 3 weeks later, in late October 2021, I had to report, in an even clearer way, that Spring's contribution documentation still didn't mention discussion forums. The reaction was fast, and came from another VMware employee. Brian Clozel claimed "they" didn't think they should mention discussion forums, because "they" didn't plan on investing in their contribution documentation "right now".
If the Spring project doesn't want Spring's forums to be discussed, it may be expected they wouldn't do anything after the issue is reported. But that's not what happened. As if Clozel's reply hadn't been enough, perhaps fearing that people would complain about such nonsense, the project had the great idea of "limit[ing] conversation to collaborators":
Fair enough; no discussion about Spring's development, nor even about that stance. That leaves one last option: reporting issues individually, until someone wakes up. Except, of course, when the issue is precisely that the ITS is completely broken. And that even when told about it, the entire team seems to do everything in its power to mishandle as many tickets as possible. The final reply came from Stéphane Nicoll, another VMware employee:
Well, Stéphane, I don't know if I am wasting "your" time, as you say. But you are right that our time is being wasted. And that needs to end.
As I write these lines, Spring Boot's Maven plugin still manages JMX inappropriately. While my report did lead to major progress on that front, to my knowledge, not only does the core issue remain (the plugin hijacks port 9001), but the defect remains practically untracked. Nearly 2 years after such a serious bug was reported, it's hard not to consider such negligence as a wilful violation of IANA standards.
Nobody is perfect. VMware, if you want to make Spring a mature offering and can't afford to hire talent, start by thinking about Spring as a project instead of just a product. Make sure any resource you inject into Spring has the minimal skills necessary to avoid being counter-productive. And if you understand what open source really is, ensure your recruits do too. Focus on providing a proper development infrastructure, to help "us" help making Spring the project and framework it should be.
Java remains as strong today as when Spring was created, 20 years ago, but it still doesn't integrate Spring's functionality. While many alternatives (like Guice) appeared since, I am not aware of a general-purpose Java framework which has reached Spring's level. If you think you know one, please indicate it. And if you know about Spring's history and have insights into how the project reached this state, thanks for sharing.
In any case, as my employer's interest in Spring is limited, I have already stopped reporting regular Spring issues, and am hereby orphaning all Spring issues I have been trying to drive. Sorry, but any further contributions to Spring from my side will come in the form of updates to this page, or of contributions to forks. If VMware won't fix its course, I wish anyone with enough courage to try salvaging Spring a lot of energy and best luck.
- [DATAJPA-1789] "Distinct" not listed in supported query keywords
- [DATAJPA-1790] 5.3.9. Applying Query Hints unclear about JPA query hints
- [DATAJPA-1792] 5.3.5. Using Sort: typo "be either"
- [DATAJPA-1793] 5.3.8. Modifying Queries: unclear reference to "custom methods"
- [DATACMNS-1814] Table of contents sometimes locates in wrong section (confusion between subsections without id-s)
- [DATACMNS-1818] Unclear section 4.6.1. Customizing Individual Repositories